

// 英文数字
//let passwordReg = /^[0-9A-Za-z]{6,15}$/
//密码验证规则修改 密码至少包含大小写字母、数字、特殊字符中的 3类且至少8位
let passwordReg = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_~!@#$^&*()?]+$)(?![a-z0-9]+$)(?![a-z\\W_~!@#$^&*()?]+$)(?![0-9\\W_~!@#$^&*()?]+$)[a-zA-Z0-9\\W_~!@#$^&*()?]{8,16}$/

// 6位数字
let numInSixReg = /^\d{1,6}$/
// 8位数字
let numInEightReg = /^\d{1,8}$/

// 电话
let mobileReg = /^((0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?)$|^(0?[1][3578][0-9]{9})$|^(400[0-9]{7})$/

// 手机
let phoneReg = /^1(3[0-9]|4[5,7]|5[0,1,2,3,5,6,7,8,9]|6[2,5,6,7]|7[0,1,7,8]|8[0-9]|9[1,8,9])\d{8}$/

// 校验邮箱
let emailReg = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/

// 校验中英文数字-姓名
let nameReg = /^[\u4E00-\u9FA5A-Za-z0-9\s]{2,12}$/

// 校验备注1-300字符
let remarkReg = /^.{0,300}$/

//机构名称-机构代码
let orgReg = /^[\u4E00-\u9FA5A-Za-z0-9_\s]{1,50}$/
//显示序号
let numInFiveReg = /^\d{1,5}$/
//地址
let addressReg = /^.{0,50}$/
//参数1-200
let numParameter = /^([1-9]\d{0,2}|1\d{3}|20[0-3]\d|204[0-8])$/
//0-4096
let resolutionParameter = /^(?:\d|[1-9]\d{1,2}|[1-3]\d{3}|40[0-8]\d|409[0-6])$/



export function validateResolution(rule, value, callback) {
  if (resolutionParameter.test(value)) {
    callback()
  } else {
    callback(new Error("请输入1-4096的整数"))
  }
}

export function validateOrg(rule, value, callback) {
  if (orgReg.test(value)) {
    callback()
  } else {
    callback(new Error("请输入50位以内的中英文数字字符"))
  }
}

export function validateNumParameter(rule, value, callback) {
  if (numParameter.test(value)) {
    callback()
  } else {
    callback(new Error("请输入1-2048的正整数"))
  }
}

export function validateNumInFive(rule, value, callback) {
  if (numInFiveReg.test(value)) {
    callback()
  } else {
    callback(new Error("请输入5位以内的数字字符"))
  }
}

/**
 * 校验设备编号 中文、英文、数字包括下划线
 * @param {*} str 
 */
export function isvalidDeviceCode(str) {
  return /^[\u4E00-\u9FA5A-Za-z0-9]{1,20}$/.test(str)
}

/**
 * 校验设备名称 中文、英文、数字包括下划线
 * @param {*} str 
 */
export function isvalidDeviceName(str) {
  return /^[\u4E00-\u9FA5A-Za-z0-9\s]{1,50}$/.test(str)
}

/**
 * 校验MAC地址 中文、英文、数字包括下划线
 * @param {*} str 
 */
export function isvalidDeviceMAC(str) {
  return /^[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}$/.test(str)
}
/**
 * 校验设备ip 中文、英文、数字包括下划线
 * @param {*} str 
 */
export function isvaliddeviceIp(str) {
  return /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
    .test(str)
}
/**
 * 校验设备备注 中文、英文、数字包括下划线
 * @param {*} str 
 */
export function isvalidDeviceRemarks(str) {
  return /^[\u4E00-\u9FA5A-Za-z0-9\s]{0,300}$/.test(str)
}

/**
 * 校验邮箱
 * @param {*} str 
 */
export function isEmail(str) {
  return /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(str);
}

export function validateNumInSix(rule, value, callback) {
  if (numInSixReg.test(value)) {
    callback()
  } else {
    callback(new Error("请输入6位以内的数字字符"))
  }
}

export function validateNumInEight(rule, value, callback) {
  if (numInEightReg.test(value)) {
    callback()
  } else {
    callback(new Error("请输入8位以内的数字字符"))
  }
}

export function validatePassword(rule, value, callback) {
  if (passwordReg.test(value)) {
    callback()
  } else {
    //callback(new Error('请输入英文、数字字符，长度为6至15字符'))
    callback(new Error("密码至少包含大小写字母、数字、特殊字符中的 3类且至少8位"))
  }
}

export function validateName(rule, value, callback) {
  if (nameReg.test(value)) {
    callback()
  } else {
    callback(new Error("请输入12位以内的中英文数字字符"))
  }
}

export function validateMobile(rule, value, callback) {
  if (value !== '' && value !== null && value !== undefined) {
    if (mobileReg.test(value)) {
      callback()
    } else {
      callback(new Error("请输入正确的电话号码"));
    }
  } else {
    callback()
  }
}

export function validatePhone(rule, value, callback) {
  if (value !== '' && value !== null && value !== undefined) {
    if (phoneReg.test(value)) {
      callback()
    } else {
      callback(new Error("请输入正确的手机号码"));
    }
  } else {
    callback()
  }
}
